Past methods of I/O testing include loop testing and boundary scan testing. Loop testing involves testing I/O cells in pairs, including an input cell and a corresponding output cell. A signal is input to the pad of an input cell and then sampled at the pad of the output cell. The output signal is compared to the input signal to determine whether the pair of I/O cells are functioning properly. This method is not suitable, however, for general, bidirectional I/O cells.
For more general applications, the boundary scan method is often used. An example of boundary scan testing is disclosed in IEEE 1149.1, which is a standard developed by JTAG (Joint Test Action Group). The boundary scan method requires a device have a boundary scan cell for each of its input and output ports. The boundary scan cells are serially connected to form a shift register around the boundary of the device. Test data, such as test I/O data, is passed into and out of the boundary shift register serially using dedicated test pins. Since testing a device using the boundary scan method requires data to be shifted serially around the shift register, such test procedures can be rather time consuming.